#include "stdafx.h"
#include "road_node.h"
#include "clientinterfaces.h"
#include <iltclient.h>
#include "ltclientshell.h"

void road_node::set_trans( const LTVector& _pos,const LTRotation& _rot)
{
	m_pos=_pos;
	m_rot=_rot;

	LTVector t_pos=_pos+2.0f*_rot.Up();

	LTVector temp_pos;
	temp_pos=t_pos+_rot.Forward()*m_length-_rot.Right()*m_width;
	m_poly.verts[0].x=temp_pos.x;
	m_poly.verts[0].y=temp_pos.y;
	m_poly.verts[0].z=temp_pos.z;


	temp_pos=t_pos+_rot.Forward()*m_length+_rot.Right()*m_width;
	m_poly.verts[1].x=temp_pos.x;
	m_poly.verts[1].y=temp_pos.y;
	m_poly.verts[1].z=temp_pos.z;


	temp_pos=t_pos-_rot.Forward()*m_length+_rot.Right()*m_width;
	m_poly.verts[2].x=temp_pos.x;
	m_poly.verts[2].y=temp_pos.y;
	m_poly.verts[2].z=temp_pos.z;


	temp_pos=t_pos-_rot.Forward()*m_length-_rot.Right()*m_width;
	m_poly.verts[3].x=temp_pos.x;
	m_poly.verts[3].y=temp_pos.y;
	m_poly.verts[3].z=temp_pos.z;


}

void road_node::render()
{
	
	g_pLTCDrawPrim->DrawPrim(&m_poly);

}

road_node::road_node():
m_length(2.8f),
m_width(6.0f)
{
	m_color.a=100;
	m_color.r=0;
	m_color.g=100;
	m_color.b=0;
	m_poly.rgba=m_color;

	m_poly.verts[0].u=0.0f;
	m_poly.verts[0].v=0.0f;

	m_poly.verts[1].u=1.0f;
	m_poly.verts[1].v=0.0f;

	m_poly.verts[2].u=1.0f;
	m_poly.verts[2].v=1.0f;

	m_poly.verts[3].u=0.0f;
	m_poly.verts[3].v=1.0f;


}

road_node::~road_node()
{

}

void road_node::set_color( uint8 a/*=150*/,uint8 r/*=150*/,uint8 g/*=0*/,uint b/*=0*/ )
{
	m_color.a=a;
	m_color.r=r;
	m_color.g=g;
	m_color.b=b;
	m_poly.rgba=m_color;

}